import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;

public class CharList {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String a = "www.KaiFaMiao.com";
        String b = "www.BaiDu.com";
        String c = "www.BiLiBiLi.com";
        char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'r', 'u', 'n', 'o', 'o', 'b'};
        String Str2 = "";

        //charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() -  1。
        char result = a.charAt(8);
        System.out.println(result);

        //int compareTo(String anotherString)按字典顺序比较两个字符串。
        //说明：
        //如果第一个字符和参数的第一个字符不等，结束比较，返回第一个字符的ASCII码差值。
        //如果第一个字符和参数的第一个字符相等，则以第二个字符和参数的第二个字符做比较，
        //以此类推,直至不等为止，返回该字符的ASCII码差值。 如果两个字符串不一样长，可对应字符又完全一样
        //则返回两个字符串的长度差值。
        int result1 =a.compareTo(b);
        System.out.println(result1);

        //int compareToIgnoreCase(String str)
        //按字典顺序比较两个字符串，不考虑大小写。
        int result2 = a.compareToIgnoreCase(c);
        System.out.println(result2);

        //String concat(String str)
        //将指定字符串连接到此字符串的结尾。
        String result3 = a.concat(b);
        System.out.println(result3);

        //boolean	contains(CharSequence s)
        //当且仅当此字符串包含指定的char值序列时，才返回true。
        boolean result4 = a.contains("K");
        System.out.println(result4);

        //static String	copyValueOf(char[] data)
        //返回指定数组中表示该字符序列的 String。相当于 valueOf(char[]) 。
        //Str2.copyValueOf( Str1 ); 使用整个输入字符数组来创建一个新的字符串对象。
        Str2 = Str2.copyValueOf(Str1);
        System.out.println(Str2);

        //static String copyValueOf(char[] data, int offset, int count)
        //Str2.copyValueOf( Str1, 2, 6 ); 从输入字符数组的第 3 个字符（即偏移量为 2）开始，
        //复制 6 个字符，并创建一个新的字符串对象。
        Str2 = Str2.copyValueOf(Str1,2,8);
        System.out.println(Str2);

        //boolean endsWith(String suffix)
        //测试此字符串是否以指定的后缀结束。
        boolean result5 = a.endsWith("com");
        System.out.println(result5);

        //boolean equals(Object anObject)
        //将此字符串与指定的对象比较。
        boolean result6 = a.equals("www.KaiFaMiao.com");
        System.out.println(result6);

        //boolean equalsIgnoreCase(String anotherString)
        //将此 String 与另一个 String 比较，不考虑大小写。
        boolean result7 = a.equalsIgnoreCase(b);
        System.out.println(result7);

        //static String	format(String format, Object... args)
        //使用指定的格式字符串和参数返回格式化字符串。


        //	byte[] getBytes()
        // 使用平台的默认字符集将此 String 编码为 byte 序列，
        // 并将结果存储到一个新的 byte 数组中。
        byte[] result8 = a.getBytes();
        System.out.println(result8);

        //void	getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
        //已过时。
        //此方法无法将字符正确转换为字节。

        //byte[]	getBytes(String charsetName)
        //使用指定的字符集将此 String 编码为 byte 序列，并将结果存储到一个新的 byte 数组中。
        byte[] result9 = b.getBytes(StandardCharsets.UTF_8);
        System.out.println(result9);

        //byte[]	getBytes(Charset charset)
        //使用给定的charset将此String编码为字节序列，将结果存储到新的字节数组中。
        byte[] result10 = c.getBytes("ISO8859-1");
        System.out.println(result10.length);

        //void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
        //将字符从此字符串复制到目标字符数组。
        //srcBegin -- 字符串中要复制的第一个字符的索引。
        //srcEnd -- 字符串中要复制的最后一个字符之后的索引。
        //dst -- 目标数组。
        //dstBegin -- 目标数组中的起始偏移量。
        Str2.getChars(0,8,Str1,0);
        System.out.println(Str2);

        //	int hashCode()
        //返回此字符串的哈希码。
        int result11 = a.hashCode();
        System.out.println(result11);

        //String indent(int n)
        //此方法可用于在行首添加或删除空格以调整每个字符串行的缩进。
        //它以整数 n 作为输入并相应地进行缩进。
        //此外，每一行都以“\n”(换行符)作为后缀。
        String result18 = a.indent(5);
        System.out.println(result18);

        //int	indexOf(int ch)
        //返回指定字符第一次出现的字符串中的索引。
        int result12 = a.indexOf('a');
        System.out.println(result12);

        //	int indexOf(int ch, int fromIndex)
        //返回在此字符串中第一次出现指定字符处的索引，从指定的索引开始搜索。
        int result13 = a.indexOf('a',6);
        System.out.println(result13);

        //int indexOf(String str)
        //返回指定字符在字符串中第一次出现处的索引，如果此字符串中没有这样的字符，则返回 -1。
        int result14 = b.indexOf('o');
        int result15 = a.indexOf(97);
        System.out.println(result14);
        System.out.println(result15);

        //int indexOf(String str, int fromIndex)
        //返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引，
        //如果此字符串中没有这样的字符，则返回 -1。
        int result16 = c.indexOf(99,3);
        int result17 = a.indexOf('m',6);
        System.out.println(result16);
        System.out.println(result17);
    }
}
